home *** CD-ROM | disk | FTP | other *** search
-
- RAKE
- A cruncher of the LZ77 family
- for the XPK-package
- Version 1.3
- Copyright 1994 by Karsten Dageförde
-
- Status: FREEWARE
-
-
-
- License/Disclaimer
- ------------------
-
- This library may be freely distributed, as long as it is kept in its
- original, complete, and unmodified form. It may NOT be distributed in a
- commercial package of any kind without my permission.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE.
-
-
- Installation
- ------------
-
- You'll need to install the XPK package first to use this library. The
- XPK package should be available on most Bulletin Board Systems, so try to
- get it there.
-
- If you already have the XPK package installed, add this library to
- your system simply by copying the xpkRAKE.library to your LIBS:Compressors/
- directory, or if you've got a 68020 (or greater) processor, you should take
- the xpkRAKE.library.68020' instead.
-
-
- Description
- -----------
-
- RAKE is an XPK packer sublibrary which implements a highly optimized
- form of the popular LZ77 compression algorithm. It uses static huffman
- coding for the 'len' and a three-step coding for the 'offset'
- information. The major feature of this packer is the highly optimized
- algorithm for tracking down redundant data.
-
-
- RAKE now supports four modes at compression. To speed up compression
- everytime a better match (than the previous) is found the 'dictionary' size
- will be reduced dynamically according to the pack-mode by division ...
-
- 0..25 : by 8,
- 26..50 : by 4,
- 51..75 : by 2 (using 'lsr.w', of course).
- 76..100 : The full dictionary size of approx. 20KB will be scanned for
- redundant data.
-
- -----------------------------------------------------------------------------
-
- IMPORTANT: There is no need to repack files packed with RAKE V1.0 - V1.2
- (68000 or 68020 version), because RAKE V1.3 is totally
- compatible with older versions and also vice versa, it just
- works faster.
-
- -----------------------------------------------------------------------------
-
-
- Statistics
- ----------
-
- Following is a table briefly listing some comparative statistics for
- NUKE and RAKE. These were generated by xBench on an A3000/25
- with 2MB ChipMem and 4MB FastMem, using the AmigaVision executable as data.
- Note that memory needs don't include xpkmaster.library's buffers.
-
-
- | Memory usage while
- Packer UComp Comp CF CSpd USpd | packing unpacking
- ----------------------------------------------------------------------------
- 68020_V1.1 (OLD VERSION)
- rake 594712 322872 45.8% 67047 491497 | 256K 0K
-
- nuke 594712 326908 45.1% 41472 613105 | 192K 0K
-
- 68020_V1.3
- rake.100 594712 322932 45.7% 73877 632672 | 256K 0K
- rake.75 594712 325028 45.4% 86190 632672 | 256K 0K
- rake.50 594712 326948 45.1% 96387 626012 | 256K 0K
- rake.25 594712 328848 44.8% 103608 626012 | 256K 0K
-
- 68000_V1.3
- rake.100 594712 322932 45.7% 72703 499757 | 256K 0K
- rake.75 594712 325028 45.4% 84596 499757 | 256K 0K
- rake.50 594712 326948 45.1% 94548 495593 | 256K 0K
- rake.25 594712 328848 44.8% 101313 495593 | 256K 0K
-
-
-
-
- History
- ---------
-
- Sep-9-94 V1.0 First public release (68000,68020)
-
- Sep-14-94 V1.1 BUGFIX: Uncompressable data (or remainder) should not cause
- XPKERR_SMALLOUTBUF but XPKERR_EXPANSION !
- (Worst case: OutLen = OutBufLen + 5(<<XPK_MARGIN) :)
-
- V1.2 Not a public release (minor bugfix for xp>K<-handler)
-
- Nov-6-94 V1.3 Using bit-field instructions for 68020 version. Pack-routine
- now fits in 68020 instruction cache. Further optimizations
- done to increase packing & unpacking speed :-). Memory
- shortage causes XPKERR_EXPANSION => files won't be packed but
- be saved uncompressed by XFH without aborting with an error.
-
-
- Contact Address
- ---------------
-
- dagefoer@rzcipa03.rz.tu-bs.de
- OR
- dagefoer@ibr.cs.tu-bs.de
-
-